package io.github.cocoa.module.socket.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * NettySocketIo属性
 *
 * @author Chim
 * @since 2024/12/12
 */
@Data
@Component
@ConfigurationProperties(prefix = "netty-socket-io")
public class NettySocketIoProperty {

    /**
     * socket 地址
     */
    private String host;
    /**
     * socket 端口
     */
    private Integer socketPort;
    /**
     * 最大每帧处理数据的长度, 防止他人利用大数据来攻击服务器
     */
    private String maxFramePayloadLength;
    /**
     * http交互最大内容长度
     */
    private String maxHttpContentLength;

    /**
     * Ping心跳间隔(毫秒), 默认25秒. 客户端向服务器发送一条心跳消息间隔
     */
    private Integer pingInterval;
    /**
     * Ping消息超时时间(毫秒), 默认60秒. 这个时间间隔内没有接收到心跳消息就会发送超时事件
     */
    private Integer pingTimeout;
    /**
     * 协议升级超时时间(毫秒), 默认10秒. HTTP 握手升级为 ws 协议超时时间
     */
    private Integer upgradeTimeout;

}
